Industrial and power generation turbines have control systems that monitor and control their operation. These control systems typically include multiple microprocessors configured as main control processors running application code that implements the control system functions.
Older control systems may become outdated and need to be replaced or updated to allow implementing current control system capabilities, such as processing-intensive model-based controls, PID controls, and more powerful application tools. However, it is often preferable to update the control system so as to cause the least impact on the turbine operation. Furthermore, simple and quick upgrades are more cost-effective by requiring less labor, less downtime, and by providing quicker realization of the benefits generated by the upgraded control systems.
The existing legacy control system application code executing the control logic may be compiled in a data format different from that required to run on the upgraded control system hardware. Application code, for example, may be written in one of many programming languages, such as, for example, C, C++, C#, Java, Pascal, or Fortran, which is then compiled into machine language code executed by one or more microprocessors. Depending upon the generation or the origin of the control system for which the original application code was written, the data formats may vary. For example, fixed point, also referred to as integer, data formats were used in earlier processors because they require lower processing overhead, thus faster mathematical operations, than using a floating point data format. Furthermore, some earlier processors are not capable of performing floating point operations. As microprocessor speeds improve, the capabilities of performing operations on more complex data formats improve. Because performing operations on floating point data allows for calculations over a wider range of numbers while maintaining greater accuracies, it may be desirable to run control systems on processors capable of operating on floating point data. However, to the extent that at least some of the legacy application code functionality is still relevant in the upgraded control systems, manually reprogramming control system processors in the new data format may be inefficient and may introduce quality problems.
In one example, the Mark V turbine control system manufactured by General Electric (“GE”) has achieved a large installed base during the many years of production. While the GE Mark V turbine control system remains a viable platform for existing owners who are using it today, its ability to accept some control upgrades is limited. As advanced control methods for turbines are developed, an upgrade path is needed for the existing GE Mark V turbine control systems to upgrade to either the GE Mark Ve or the GE Mark VIe control systems. One aspect of the upgrade path includes upgrading at least some of the existing legacy processors to newer, current microprocessors capable of handling more complex operations as required by the upgraded control system functionality. Accordingly, the upgraded processors are capable of operating on larger, more complex data formats, such as 32-bit, floating point data. However, the application code for the existing legacy GE Mark V turbine control system was written to be compiled and executed in 16-bit, fixed point format. Thus, the legacy application code written for fixed point processing requires re-writing so that it may be compiled and executed in floating point format to take full advantage of the upgraded system capabilities. Furthermore, the upgraded control system may include a new programming environment based in the C# programming language, an object-oriented programming language as part of Microsoft Corporation's .NET platform. Therefore, performing operations on the application code in the new environment may require the application code to be written in C#.
Thus, there is a desire for systems and methods that allow efficient control system upgrades, including providing for application code conversions to an upgraded control system programming standard.